Systems and methods for matching facial images to reference images

ABSTRACT

A facial feature matching system comprises a facial feature matching engine. A first user selection of reference facial images is received, and facial features of reference faces are characterized using the facial feature recognition engine comprising a neural network with input, hidden, and output layers. The facial features are weighted. The weighted facial features are used to identify users that have facial features similar to the weighted facial features, wherein the respective reference faces include faces different than the faces of the users. Similarity indicators are generated for the identified users. The generated respective similarity indicators are used to generate a ordering of the identified users which is rendered via the user device. A first user selection of a second user in the ordered identified users is received and the first user and the second user are enabled to communicate over an electronic communication channel.

INCORPORATION BY REFERENCE TO ANY PRIORITY APPLICATIONS

Any and all applications for which a foreign or domestic priority claimis identified in the Application Data Sheet as filed with the presentapplication are hereby incorporated by reference under 37 CFR 1.57.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentand/or the patent disclosure as it appears in the United States Patentand Trademark Office patent file and/or records, but otherwise reservesall copyrights whatsoever.

BACKGROUND OF THE INVENTION Field of the Invention

The present disclosure generally relates to object analysis usingcomputer vision, and in particular, to methods and systems for facialmatching.

Description of the Related Art

Facial matching has found many applications in security applications,photography, and social media. However, it is desirable to be able toachieve greater accuracy while reducing computer resource utilization.

SUMMARY

The following presents a simplified summary of one or more aspects inorder to provide a basic understanding of such aspects. This summary isnot an extensive overview of all contemplated aspects, and is intendedto neither identify key or critical elements of all aspects nordelineate the scope of any or all aspects. Its sole purpose is topresent some concepts of one or more aspects in a simplified form as aprelude to the more detailed description that is presented later.

An aspect of the present disclosure relates to a facial feature matchingsystem comprising a facial feature matching engine. A first userselection of reference facial images is received, and facial features ofreference faces are characterized using the facial feature recognitionengine comprising a neural network. The facial features are weighted.

The weighted facial features are used to identify users that have facialfeatures similar to the weighted facial features, wherein the respectivereference faces include faces different than the faces of the users.Similarity indicators are generated for the identified users. Thegenerated respective similarity indicators are used to generate aordering of the identified users which is rendered via the user device.A first user selection of a second user in the ordered identified usersis received and the first user and the second user are enabled tocommunicate over an electronic communication channel.

An aspect of the present disclosure relates to a facial feature matchingsystem, comprising: a network interface; at least one processing deviceoperable to: populate a first user interface, for display on a userdevice associated with a first user, with a set of images comprisingrespective reference facial images of different people; receive, via thenetwork interface, from the user device a selection by the first user ofa plurality of reference facial images in the set of images;characterize a plurality of facial features of respective referencefaces using a facial feature recognition engine, the respective facescomprising faces included in the reference facial images selected by thefirst user; apply respective weights to the plurality of facial featuresof respective reference faces; use the weighted plurality of facialfeatures to identify a plurality of users that have one or more facialfeatures similar to one or more of the weighted plurality of facialfeatures, wherein the respective reference faces include faces differentthan the faces of the plurality of users; generate respective similarityscores for the identified plurality of users that have one or morefacial features similar to one or more of the weighted plurality offacial features; use the generated respective similarity scores for theidentified plurality of users that have one or more facial featuressimilar to one or more of the weighted plurality of facial features togenerate a ranking of the identified plurality of users; cause a seconduser interface to be displayed on the user device, the second userinterface populated, in ranked order in association with respectivesimilarity scores, with the identified plurality of users that have oneor more facial features similar to one or more of the weighted pluralityof facial features; receive, via the second user interface, a selection,by the first user, from the user device, of a second user in theplurality of users that have one or more facial features similar to oneor more of the weighted plurality of facial features; and enable thefirst user and the second user to communicate over at least a firstelectronic communication channel.

An aspect of the present disclosure relates to a computerized method,the method comprising: populating, using a computer system comprisinghardware, a first user interface, for display on a user deviceassociated with a first user, with images comprising respectivereference facial images of different people; receiving, at the computersystem from the user device, a selection by the first user of aplurality of reference facial images; characterizing a plurality offacial features of respective reference faces using a facial featurerecognition engine, the respective faces comprising faces included inthe reference facial images selected by the first user; applyingrespective weights to the plurality of facial features of respectivereference faces; using the weighted plurality of facial features toidentify a plurality of users that have one or more facial featuressimilar to one or more of the weighted plurality of facial features,wherein the respective reference faces include faces different than thefaces of the plurality of users; generating respective similarity scoresfor the identified plurality of users that have one or more facialfeatures similar to one or more of the weighted plurality of facialfeatures; using the generated respective similarity scores for theidentified plurality of users that have one or more facial featuressimilar to one or more of the weighted plurality of facial features togenerate a ranking of the identified plurality of users; causing asecond user interface to be displayed on the user device, the seconduser interface populated, in ranked order, with the identified pluralityof users that have one or more facial features similar to one or more ofthe weighted plurality of facial features; receiving, via the seconduser interface, a selection, by the first user, from the user device, ofa second user in the plurality of users that have one or more facialfeatures similar to one or more of the weighted plurality of facialfeatures; and enabling the first user and the second user to communicateover at least a first electronic communication channel.

An aspect of the present disclosure relates to a non-transitorycomputer-readable medium comprising instructions that when executed by aprocessor, cause the processor to perform operations comprising:populating a first user interface, for display on a user deviceassociated with a first user, with images comprising respectivereference facial images of different people; receiving a selection bythe first user of reference facial images; characterizing a plurality offacial features of respective reference faces using a facial featurerecognition engine, the respective faces comprising faces included inthe reference facial images selected by the first user; applyingrespective weights to the plurality of facial features of respectivereference faces; using the weighted plurality of facial features toidentify users that have one or more facial features similar to one ormore of the weighted plurality of facial features, wherein therespective reference faces include faces different than the faces of theplurality of users; generating respective similarity indicators for theidentified users that have one or more facial features similar to one ormore of the weighted plurality of facial features; using the generatedrespective similarity indicators for the identified users that have oneor more facial features similar to one or more of the weighted pluralityof facial features to generate a ordering of the identified users;causing a second user interface to be displayed on the user device, thesecond user interface populated, in accordance with the ordering, withthe identified plurality of users that have one or more facial featuressimilar to one or more of the weighted plurality of facial features;receiving, via the second user interface, a selection, by the firstuser, from the user device, of a second user users that have one or morefacial features similar to one or more of the weighted plurality offacial features; and enabling the first user and the second user tocommunicate over at least a first electronic communication channel.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments will now be described with reference to the drawingssummarized below. These drawings and the associated description areprovided to illustrate example aspects of the disclosure, and not tolimit the scope of the invention.

FIG. 1A illustrates an example networked environment.

FIG. 1B illustrates an example architecture.

FIG. 1C illustrates an example neural network architecture.

FIGS. 2 and 3 illustrate an example facial image matching process.

FIGS. 4 and 5 illustrate another example facial image matching process.

DETAILED DESCRIPTION

An aspect of the present disclosure relates to systems and methods foridentifying faces with similar facial features and/or other facialcharacteristics.

For example, facial recognition technology (FRT) herein may beconfigured and utilized to identify and/or match (with a certainthreshold of similarity) a person or individual features of a person(e.g., identify images of people that have similar facial features) bycomparing and analyzing patterns based on the person's facial contoursor parts or individual features of the person's facial contours.Further, the disclosed facial recognition technology may be configuredto identify head and facial hair (e.g., eyebrows, eyelashes, mustache,beard, sideburns, etc.) and/or identify two or more people with similarhair features.

As disclosed herein, an artificial intelligence (AI) engine (e.g.,implemented as a biometric software application, a hardware device,and/or using a combination of hardware and software), may be utilized,where the artificial intelligence engine performs computer vision toanalyze facial images and performs process to enhance or maximize thechance of identifying, for a given identified face, one or more matching(similar) faces in other facial images. The artificial intelligenceengine may optionally be configured to mimic the cognitive functions ofhumans. Separate versions and/or parameters for each model for each usercan be customized to optimize the matching process on a per user basisas described herein.

An aspect of this disclosure relates to utilizing facial recognitiontechnology (including image processing and image recognitiontechnologies) that identifies matching in advantageous combination withother technologies, fields, and functions. Although certain aspects ofthe disclosure relate to dating applications for the purpose ofillustration, the disclosed systems and methods may similarly beutilized for non-dating applications (e.g., security applications,social events, social networking, and other potential use cases),including those where it may be advantageous to identify people usingcomputer vision.

An enhanced method of utilizing facial recognition technology,optionally employing artificial intelligence, may be utilized in orderto provide a matching system that identifies people with similar facialfeatures in the dating field to thereby provide more satisfactorymatches that conventional systems. The disclosed algorithms and systemsutilize a novel filtering and matching technique with respect toinformation extracted from a facial recognition/facial featurecharacterization process. For example, a first user may identify areference face that has pleasing characteristics to the first user.Using a matching algorithm that utilizes facial feature recognitiontechnology, the disclosed systems and processes will attempt to findother users that have one or more matching characteristics with respectto the reference face. A given user may be matched to more than onereference person. The reference person may be, by way of example, acelebrity, or a famous face look-alike (e.g., a person with very similarphysical attributes, often commonly referred to as a doppelganger). Theusers may be users (e.g., subscribers) of a dating service.

In order to train the system to identify facial features of a user, atraining process may be utilized in which a user selects images ofpreferred faces from a group of digital images from a database of images(or provides reference images via an upload of facial images or links tofacial images) of reference people's faces. This database may store agroup of 2 to “n” reference images of reference people. The images maybe tagged using an artificial intelligence computer vision system withvarious identified facial characteristics.

By way of non-limiting example, such characteristics may include faceshape (e.g., oval, round, square, diamond, heart, pear, oblong, etc.),eyebrow shape (soft angled arched, hard angled arch, straight, rounded,s-shaped, etc.), eye shape (e.g., round, monolid, downturned, upturned,hooded, almond eyes), eye color (e.g., amber, blue, brown, gray, green,hazel, red, etc.), nose shape (e.g., Greek nose, Roman nose, Nubiannose, bulbous nose, fleshy nose, snub nose, hawk nose, etc.), lip shape(e.g., heavy upper lip, full lips, wide lips, round lips, heavy lowerlip, thin lips, bow-shaped lips, heart-shaped lips, downturned lips,etc.), forehead shapes (e.g., broad, narrow, curved, slopped, etc.),hairline shapes (e.g., high and broad, low and narrow, straight andsquare, round, M-shaped, Widow's Peak, etc.), forehead lines (no lines,moderate lines, heavily lined), chin shape (e.g., double chin, dimpledshin, drooping chin, large chin, recessed chin, etc.), ear shape (e.g.,attached lobes, broad ear, narrow ear, pointed ear, round lobe, squareear, protruding ears, etc.), hair (e.g., straight, curly, wavy, long,short, buzz cut, male pattern baldness, bald, etc.), hair color (e.g.,black, brown, blonde, auburn, dirty blonde, red, etc.), facial hair(e.g., long, short, Van Dye, Royale, round, goatee, egg-shaped, 5o'clock shadow, scruffy, etc.), and so on.

In order to enhance accuracy and reduce computer resource utilization,facial images presented to the user for selection are optionallyprescreened and filtered for the user based on preliminary criteria,optionally including user preference information provided by the uservia a preference user interface as well as preference information ofpotential matches. Advantageously, rather than reanalyzing the databaseof images using computer vision each time a filter operation is to beperformed, a search engine may compare the user's preferences with tagsassigned to the images corresponding to facial characteristicspreviously identified by using the computer vision artificialintelligence engine.

For example, prescreening and filtering may optionally be performedbased in whole or in part on facial characteristics, gender, genderidentity, and/or sexual preferences specified by the user. The usermakes a selection from the group of filtered “n” images, to build a setof images from “x” to “z” images of reference people that the user wouldlike to be matched to. The algorithm, utilizing a facial recognitionengine and optionally artificial intelligence, along with a matchingalgorithm that utilizes image processing technology, then builds anoptimal or selective combined set of image characteristics for futurematching. For example, if a user indicates a preference for a personpresenting as female, with almond shaped eyes, and a straight nose, thefiltering process may filter out images of faces that do not include theforegoing preferences, and present a gallery of facial images that domeet the preferences.

Certain aspects will now be described with reference to the figures.

FIG. 1A illustrates an example networked environment that may beutilized to practice the example processes herein. An image processingsystem 102 may be used to enable a user to select and/or provide one ormore reference facial images and find matching images of other users ofthe system (e.g., users who have similar facial and/or hair features asthe reference image(s) as described herein.

The image processing system 102 may be coupled, via a network 100 (e.g.,the Internet, an intranet, and/or a cellular network) to one or moredata sources 104, 106, 108. Image data from one or more of the datasources 104, 106, 108 may be used to train a learning engine (such as aconvolutional neural network) configured to match user facial images toreference facial images. The reference facial images may be presented toa user via a user interface presented on a user device. As discussedherein, the user may be able to select one or more preferred facesand/or disfavored faces via the user interface. The user reference imageselections may be used to identify images of users (e.g., users lookingfor a date or friend) that have one or more similarities to thepreferred faces and/or that lack one or more similarities to thedisfavored faces. The user selections may be used to generate a scoredand/or ranked set of matching user facial images, where the score and/orranking indicates the closes or relative closeness of a given user imageto the reference facial image(s).

The image processing system 102 may communicate with one or more usersystems 110, 112, 114 (e.g., smart phones, tablet computers, laptopcomputers, desktop computers, game consoles, vehicle computers, and/orother computer systems). The user systems 110, 112, 114 may presentcertain user interfaces described herein. The user interfaces may bepresented via a dedicated match application downloaded to the usersystem (e.g., a phone/tablet app downloaded from an application store)or via browser that accesses the user interfaces from a web serverassociated with the image processing system 102. The user interfacesdescribed herein may enable a user to provide user match preferences,select reference images, provide user profile data, and view images ofusers that match user preferences and/or reference image selections viathe image processing system 102.

FIG. 1B is a block diagram illustrating example components of the imageprocessing system 102. The example image processing system 102 includesan arrangement of computer hardware and software components that may beused to implement aspects of the present disclosure. Those skilled inthe art will appreciate that the example components may include more (orfewer) components than those depicted in FIG. 1B. image processingsystem 102 may comprise a cloud-based computer system.

With respect to the cloud-based computer system, the cloud-basedcomputer system may comprise a hosted computing environment thatincludes a collection of physical computing resources that may beremotely accessible, located at different facilities, and may be rapidlyprovisioned as needed (sometimes referred to as a “cloud” computingenvironment). Certain data described herein may optionally be storedusing a data store that may comprise a hosted storage environment thatincludes a collection of physical data storage devices that may beremotely accessible and may be rapidly provisioned as needed (sometimesreferred to as “cloud” storage).

The image processing system 102 may include one or more processing units120B (e.g., a general purpose processor and/or a high speed graphicsprocessor), one or more network interfaces 122B, a non-transitorycomputer-readable medium drive 124B, and an input/output deviceinterface 126B, all of which may communicate with one another by way ofone or more communication buses. The network interface 124B may provideservices described herein with connectivity to one or more networks orcomputing systems. The processing unit 120B may thus receive information(e.g., reference facial images, user images, user preferences, etc.) andinstructions from other computing devices, systems, or services via anetwork. The processing unit 120B may also communicate to and frommemory 12B4 and further provide output information via the input/outputdevice interface 126B. The input/output device interface 126B may alsoaccept input from one or more input devices, such as a keyboard, mouse,digital pen, touch screen, microphone, camera, etc.

The memory 128B may contain computer program instructions that theprocessing unit 1208 may execute in order to implement one or moreaspects of the present disclosure. The memory 120B generally includesRAM, ROM (and variants thereof, such as EEPROM) and/or other persistentor non-transitory computer-readable storage media. The memory 120B maystore an operating system 132B that provides computer programinstructions for use by the processing unit 120B in the generaladministration and operation of a image matching module 134B, includingit components.

The memory 128B may store user accounts, including contact information,geographical location, user preferences (e.g., gender, sexualorientation, location, religion, height, weight, other preferencesdiscussed herein, and/or the like), an identification of user selectionsof preference reference facial images, an identification of userselections of disfavored reference facial images, payment instrumentdata, and/or other user data described herein. The memory 128 may storefacial images (e.g., still photographs or videos) that were captured byusers and/or reference facial images. Some or all of the data discussedherein may optionally be stored in a relational database, an SQLdatabase, a NOSQL database, or other database type. Because the assetsmay include BLOBs (binary large objects), such as large images, whichare difficult for conventional database to handle, some (e.g., BLOBs) orall of the assets may be stored in files and corresponding referencesmay be stored in the database. Optionally, the memory 128B may includeone or more third party cloud-based storage systems.

The image matching module 134B may include a GUI component thatgenerates graphical user interfaces and processes user inputs, a matchsearch component (which may include a search engine used to search forfacial images that match a user's preferences), and a facial featurematching component configured to perform facial feature matching asdiscussed herein.

The memory 128B may include an interface module 130B. The interfacemodule 130B can be configured to facilitate generating one or moreinterfaces through which a compatible computing device may send to, orreceive from, the image matching module 134B data and content.

FIGS. 2 and 3 illustrate an example process configured to identifyfacial images of users having characteristics that most closely matchthose of one or more reference facial images.

The process may optionally be executed utilizing a cloud-based computingsystem comprising a facial recognition engine that communicates over anetwork with the user's endpoint. These endpoints can take manydifferent forms, for example a mobile phone, laptop computer, desktopcomputer, networked television, gaming devices or consoles, or otherelectronic, computerized device.

With reference to FIG. 2 , in order to build a database of facial imagesof users, a given user may provide a digital image of the user from theuser device or a remote networked storage system (e.g., via an imageupload to the system or by providing a link to the image to the system).The provided digital image may be stored in a database of users. Withrespect to the cloud-based computer system, the cloud-based computersystem may comprise a hosted computing environment that includes acollection of physical computing resources that may be remotelyaccessible, located at different facilities, and may be rapidlyprovisioned as needed (sometimes referred to as a “cloud” computingenvironment). Certain data described herein may optionally be storedusing a data store that may comprise a hosted storage environment thatincludes a collection of physical data storage devices that may beremotely accessible and may be rapidly provisioned as needed (sometimesreferred to as “cloud” storage).

In order to perform a match process, the user may be presented withreference images of faces. The reference images may be selected to havea variety of different facial characteristics (e.g., different shapedeyes, different shaped noses, different shaped cheeks, different shapedchins, different hairlines, etc.). The user may select one or more ofthe facial reference images that the user finds attractive. Optionally,in addition or instead, the user may provide a reference image of aperson the user finds attractive.

The facial recognition engine may draw a light mask of vectors of thefacial features for the user to view. In this case, a vector mask may beplaced on a portion of or the whole facial image of the digital image.Optionally separate vector masks may be generated based on individual orgroup(s) of individual facial features, using sets of different vectormasks in the matching algorithms. Masks may be weighted, and therespective weights or actual masks also could be varied with separateweighting factors reflecting the relative importance of correspondingfeatures. So weighting may be used to enhance the matching accuracy.Optionally, the user may provide one or more feature weights and/or maymodify one or more default feature weights.

Referring again to FIG. 2 , a matching user image algorithm may beutilized that takes the combined optimal set of image characteristics(e.g., as determined from the set up procedure) and matches the set ofimage characteristics against the database of user images in the userimage database using the facial feature recognition engine, imageprocessing technology, and optionally artificial intelligence asdiscussed elsewhere herein coupled with the matching algorithm togenerate a list of “c” potential persons with a set of physicalcharacteristics that satisfy the matching criteria based on the combinedset of image characteristics. The matching process may be targeted andlimited to the opposite or same sex of the user depending on the userrequested gender category (e.g., where the user's target gender categorymay be determined via the user specified preferences which may be storedin a user profile).

The database of user images may optionally also be prescreened based onthe user's preliminary criteria selection and preferences, for example,prescreened based on specific facial characteristics, haircharacteristics, gender, gender identity, and/or sexual preferences.This prescreening process will reduce the amount of processing andmemory resources required as the matching process will exclude some orall non-relevant images.

Referring to FIG. 3 , an example version of the matching algorithm maybe configured to extract images of individual or groups of facialfeatures (e.g., as identified via the process illustrated in FIG. 2 ).The algorithm may then place the most significant weight on specificfactors (e.g., the more relevant features for users or class of users(e.g., where the class may be of a particular gender, age, and/orgeographical location) or for the particular user requesting a match),including features or groups of features, by ranking these factors, byplacing different weights or ranking factors on specific items. Thus,the weighting and/or ranking may reflect the relative importance of agiven feature (for users in general, users in a particular class, or forthe particular user) in determining a match to thereby provide a moreaccurate match.

The matching engine that executes the matching algorithm optionallyutilizes facial landmarks of key features, including the eyes, nose,and/or mouth that are detected and extracted. These landmarks may alsobe categorized with a mask of vectors for each feature that isautomatically created using the mask. The matching algorithm providesthe extraction of these features, the geometry of the face, and thetopography of the base image to identify matches with similar imagesbased on biometrics and image processing in the database of referenceimages. These features can then be utilized to match to the whole facialimage.

With respect to the utilization of masks for feature extraction, a maskcan be created for feature extraction of a group of reference images. Amask can be created for specific facial landmarks. Optionally,independent masks can be created for each facial feature (for example,right eye, left eye, nose, and mouth), which are then matched tofeatures in the reference images.

One or more databases of male and female facial features may beprovided, where the male facial features are identified as male featuresand the female facial features are identified as female features.Optionally, different databases may be used to store facial features ofrespective genders. Optionally, a single database may store facialfeatures of more than one gender. These gender-based databases can alsobe sub-classified into other categories, including gender identity orsexuality, as well as in other types of categories.

The database of users optionally includes not only a digital image orimages of each user but also includes a set of information about eachuser (e.g., profile information), including, by way of example, some orall of the following: the specific gender of the user, sexualpreferences, and/or certain of the user's physical characteristics. Aphysical characteristic can include any physical feature of a person'sbody, such as a facial feature on a human (e.g., hair color, hairlength, check prominence, lip shape, nose shape, other facial featuresdescribed herein, etc.). This information may be stored as metadata witheach image or as a separate file. This metadata can be utilized by thematching algorithm as part of the matching process. When the processidentifies matching facial images in the database of user images, thefacial images may be transmitted over a network to the user device fordisplay via a user interface. The user interface may enable the user toselect one or more than one images from the match results to indicatethe person the user potentially wishes to be matched with.

The matching processes can optionally be trained to either include andor exclude (filter out) certain features based on individual users'preferences. Example factors may include image gender, rugged or femmelooks, sexual orientation, height, weight, body shape, facial featurecharacteristics, hair characteristics, and/or other factors. Individualimages can be recharacterized based on certain factors to reduce thefacial recognition technology system processing power utilization andmemory utilization, and the time needed to perform the matching process.As noted elsewhere herein, optionally a given user's facial featuresfrom an image may be characterized via a computer vision, and metadatacorresponding to those facial features may be stored in association withthe user's account and/or the user's image file. Such metadata may beused (e.g., by the matching processes which may compare the metadata tothe user's preferences) to include or exclude certain users from thepresentation of potential matches being presented to the user requestinga match.

The artificial intelligence engine (which may be used by the matchingalgorithm) can learn or be adjusted so that the prediction of the targetuser's match is more accurate based on the perceived “sexual chemistry”from the image. This may also be referred to as the user's biologicaltype. The biological type could be based on the points derived from oneor more technical sources, including by way of example, fromanthropology, neurobiology, physiology, neuropsychology, and/orevolutional biology. These areas of science can be utilized to developbackground information to be applied in establishing the baseline of thematching algorithm and in generating the matching algorithm.

In order to speed up the process of identifying for a user seeking otherusers (e.g., to date) and to correspondingly reduce computer resourceutilization, the disclosed system may enable the user to pick “familiar”or celebrity faces (well-known faces the user may be familiar with) asreference images in the setup section that trigger biological responses(e.g., increase in heart rate, change in pupil dilation, etc.) and/orphysical characteristics that can be described as “sexual chemistry,”indicating that the faces are attractive to the user. The artificialintelligence engine may identify matches by characterizing andextracting data points from facial biometrics and then setting upcategories of facial geometry and/or facial topography and other datapoints which were derived from the facial landscapes derived from thefacial recognition technology analysis of the images (e.g., distance ofvarious facial feature points from each other, the width of facialfeatures, the height of facial features, etc.).

The identification and optionally measurements of these biologicalresponses and/or characteristics can also be stored in the database forlater access for use in other or future matching algorithms. Thematching algorithm can organize and categorize within the database thefacial biometric data into individual or groups of information forparticular characteristics of groups or categories of images withsimilar individual or overall facial characteristics. The algorithm mayoptionally use different criteria depending on gender, other physicalcharacteristics, or requested criteria. The algorithm may optionallyexamine neurological reactions (e.g., via one or more sensors, such as acamera, heart rate sensor, etc.) to certain images to establish oridentify a physical response to certain types of images (e.g., faceshaving different facial characteristics) or that trigger the endorphinsof the subject user.

The artificial intelligence engine may be used to extract, sort, group,classify, and/or characterize the images. The facial proportions andmorphological features, and male and female images may optionally becategorized separately. The artificial intelligence engine algorithmoptionally uses natural language processing (e.g., to analyze searchuser queries for desirable users) and/or deep learning interpretationsfrom the inputs to the system. The artificial intelligence enginealgorithm and/or image processing engine can learn the features thatindividual users or groups of users like/prefer and then store this datato evaluate and process new information for additional matches in thedatabase over time. This way, the system can learn which individualfacial features are more significant (with respect to user preferences)to which users or groups of users. Such engine learning may optionallyalso be based on data from anthropology, neurobiology, physiology,neuropsychology, and/or evolutional biology programmed into the system.The system can also modify the percentages of the matching factorsrequired to provide a match based on historical data and anthropology,neurobiology, physiology, neuropsychology, and/or evolutional biology,to more accurately calculate a match score (e.g., a percentage matchscore) that may be provided to users.

Optionally, a different programed matching percentage may be utilizedfor a given user that is calculated using established data (e.g., basedon historical data for a large number of people, such as more than athousand people) and then modified using individual user data to refinethe matching process for that user. For example, the artificialintelligence algorithm executed by the artificial intelligence enginemay learn and modify the match percentage calculation for eachindividual user over time, and so a custom model may be generated foreach user configured to perform a customized match in substantially realtime. Optionally, the artificial intelligence engine may read thebiometric data over time and, using the biometric data, learn how eachuser likes and dislikes or how each user values specific facial featurecharacteristics.

For example, the system's artificial intelligence engine may beconfigured to learn what the user likes/prefers based on the biometricdata (e.g., facial features, hair features, etc.) that the user selectsand may be configured to assign different weighted values to differentfacial feature characteristics as it learns. The system adjusts thepercentages in the matching algorithm based on the features (e.g., tohead shape, nose bridge length, chin shape, distance between the eyes,nose shape, skin color or tint, skin texture, distance from top of thenose to top of lip, distance from bottom of lip to chin, height ofcheekbones, scars, eyebrow thickness and/or shape, jawline, nose shape,ear size and angle, and/or the like) that are more important to thatindividual user (e.g., including selected common features or groups offeatures). This algorithm may then tune the optimal individualpercentages for each item for each individual user.

The selection of a group of reference images by a user over time (e.g.,each time the user is prompted to select one or more reference imagesand the user accordingly makes such selection) may be utilized by theartificial intelligence engine as part of its learning process. Theartificial intelligence engine may learn the common features of theuser's changing selections of reference images within the system. Theartificial intelligence engine algorithm may continuously store suchdata as the user adds or changes the selected reference images overtime. The system learns how the user's desired reference features changeover time based on the user's image selection history.

The facial biometrics may be classified, optionally in conjunction withthe use of topography systems that analyze and classify facial features.The facial features can be encoded based on the geometry of the specificfeatures and then used to carry out a matching or morphologicalassessment. The geometry of each feature can be determined by performinga morphological assessment on that particular feature. The facialgeometry in an image may be measured and then the subclassification ofindividual features may be performed by conducting a morphologicalassessment of those morphological features (an analysis and assessmentof form and structure of faces).

The facial topography, including facial features, may be categorized byindividual facial features. Some examples of these facial features mayinclude but are not limited to some or all of the following: head shape,nose bridge length, chin shape, distance between the eyes, nose shape,skin color or tint, skin texture, distance from top of the nose to topof lip, distance from bottom of lip to chin, height of cheekbones,scars, eyebrow thickness and/or shape, jawline, nose shape, ear size andangle, hairline, facial hair, other facial features described herein, orany combination of these and other facial features. The disclosedalgorithms can also utilize an individual training process to fit thesemodels for individual users.

Optionally, algorithms may be configured and utilized that place varyingdegrees of weights and/or rankings on individual or categories ofdifferent facial features or groups of facial features. Optionally, aprocess of chain code matching features may be performed which matchesspecific features and groups of features in a specific order and/orsequence. Advantageously, chain codes provide a compact representationof a binary object, and it is easier to compare objects (e.g., facialfeatures) using chain codes as they are a translation invariantrepresentation of a binary object. Additionally, chain codes can be usedto compute any shape feature as it is a complete or satisfactoryrepresentation of an object or curve. Yet further, chain codes providelossless compression and preserve all topological and morphologicalinformation which will be useful in the analysis of line patterns interms of speed and effectiveness

Optionally, facial recognition technology may be utilized that enablesthe system to collect and organize the aggregated data of a group ofimages to provide either a reference image and/or match user images to aset of standard reference images and/or to a reference image that wasproduced by the system. The aggregated data may represent an image of anactual person that is generated from this data set or rather thanrepresenting an actual person, but rather the reference image may be ahypothetical image that is generated using a combination of featuresfrom images of multiple different people.

Optionally, the matching algorithm may determine a match and/or a degreeof match based on degrees of resemblance to make the match to eitherreference images or the user images more specific and, in some cases,qualitative in one or multiple characteristics. Therefore, matches donot need to be based on a direct match, one to one with a person to animage. Matches can be based in whole or in part on degrees of theresemblance or degrees of resemblance in just some specific individualfacial features. Indeed, there may not be an exact match as there maynot be users whose facial features completely match the reference imagesor other user-provided or inferred preferences, yet the closest matchesmay be determined.

Thus, by way of example, the matching process may automatically classifythe “match” to reference images in varying degrees (e.g., percentages)of resemblance (e.g., ranging from 50% to 99%) or in terms of a grade(e.g., A, B, C) or other score. When classifying the match in a range(e.g., a range of 50% to 99%) multiple images can be respectivelyorganized into subsets of matches. These subsets could range from a fewimages (e.g., 5-10 facial images) or a large number of facial images(e.g., 25-100 images or hundreds of images). The subset may be createdto include those images that are the closest in appearance (e.g.,satisfy a threshold minimum resemblance percentage or other score) asmay be determined based on ranking factors and/or weights using thematching algorithms in ranked order.

The ranking factors and weights can be based on similarities ordifferences, symmetry, feature size, and/or any other characteristics ofthe individual features or group of features. The ranking factors andweights may be based at least partly on scientific principles of humanattraction or other data. Examples could include the size of lips, eyes,cheekbone height, and/or other features or groups of features. Thealgorithm can be trained to the preferences of the individual users(e.g., to decide if the size of a physical feature would have a higheror lower weighted value than the color of a person's hair or viceversa).

The matching processes may also utilize artificial intelligence (AI)engines to improve the accuracy of the overall process. With referenceto FIG. 10 , an artificial intelligence engine may include a deepconvolutional neural network (including an input layer, hidden layers,and an output layer) to analyze the images. Fully convolutional neuralnetworks can be used and trained based on the individual user's feedback(where neural network layer node weights may be adjusted usingbackpropagation based on an error function output).

Optionally, a “Selfie Booth” module may be provided that controls andrestricts the digital image(s) capture process (e.g., using a camera ona user device, such as a rear or front facing phone camera or a laptopor desktop video camera), using many different potential physicalsources for the input to the image(s) capture system, that are generatedfor the user's digital image(s) in the database. The system may createrestrictions on the image capture process to ensure that the imagesource is current and from the actual user. The system may enable acollection of user images to be provided by the user (including uploador referenced images from the Internet or third party database) and/orother digital image sources to be accessed. These images may be storedin the database as the verified reference images for the user asdescribed elsewhere herein.

The disclosed systems and methods may be configured to provide multiplematches to a given reference image. This may be accomplished byproviding matches with degrees of similarity or resemblance in one ormore of the methods or criteria.

These simultaneous multiple matches may optionally be performed usingparallel processing and/or parallel processing with the artificialintelligence technology to spread the processing requirements out overdifferent computational units (e.g., processing devices). Optionally, atask allocation hardware and/or software module may identify the loadinglevel of a given processing device and allocate matching processes so asto attempt to balance the loads of the various processing devices.

Referring now to FIGS. 4 and 5 , as similarly discussed above, a setupsystem (comprising setup processes) and corresponding user interfacesmay be provided in which the user selects from a group of more than onedigital image from a database of images of reference people populated bythe system, where the user may be instructed to select images ofpreferred faces or disfavored images. This database can be comprised ofa group of 2 to “n” reference images of reference people. These imagesare optionally prescreened for the user based on preliminary criteria(e.g., user preferences accessed from a user profile), for example,prescreened based on gender, gender identity, and/or sexual preferences(e.g., as provided by the user and stored in a user profile). The userselects images from the group of “n” images, to build a set of images(“x” to “z” images) of people that the user would like to be matched to.In this form, a list (or tags or pointers or the actual images) of theuser's individual selection of a set of reference images is stored forlater processing. Optionally, the user may also select images of facesthat the user finds unattractive to enable the system to exclude imagesof faces with disfavored features as being a potential match. Thus, forexample, each image may be presented with a like control and a notinterested control. The user may activate the appropriate control whichwill be detected and recorded by the system, and used to train thesystem to identify facial features the user finds attractive orunattractive.

A matching user image algorithm may be utilized that takes the list orset of reference images and/or characteristics.

The characteristics or features may include any that were generated.Referring to FIGS. 4 and 5 , the process matches the characteristics orfeatures against the database of user images using facial recognition(e.g., facial feature recognition), and optionally artificialintelligence, coupled with the matching algorithm to generate a list of“c” potential persons determined to have a good set of physical matchingcharacteristics (e.g., as determined by calculated matching scores thatexceed a specified threshold) to the combined set of imagecharacteristics. This matching process may be limited to the oppositeand/or the same sex of the user depending on the user requested gendercategory/profile and/or other user preferences. The database of userimages may also be prescreened based on the user's preliminary criteriaselection, for example, prescreened based on gender, gender identity,and/or sexual preferences.

Thus, the persons included in the list of potential persons determinedto have a good set of physical matching facial characteristics may bescored based at least in part on the closeness of the match (e.g., apercentage similarity score, a number score in a score range (e.g.,1-100, 1-10, 1-5, etc.), a textual description score (e.g., “bestmatch”, great match”, “good match”, etc.), and/or other score).Optionally, an additional score may be provided reflecting the closenessof the match between non-facial characteristics to a user's otherpreferences (e.g., gender, age, locality, religion, musical interests,hobbies, education level, etc.). Optionally, an aggregate score may begenerated that reflects both the closeness of the match of facialcharacteristics and the closeness of the match of non-facialcharacteristics.

A ranked list of the potential persons may be displayed in associationwith respective similarity scores on the user's device. The user mayselect one or more of the potential persons to communicate with. Thesystem may enable the user to communicate with selected potentialpersons via one or more communication channels (e.g., text chat, audiochat, audio/video chat, email, and/or the like). Optionally, a giveselected person may first receive a message from the system indicatingthat the user wants to communicate with the person. The message mayinclude an image of the user and user profile information (e.g.,geographical location, age, hobbies, musical interests, etc.).Optionally, the person may need to agree to receive a communication fromthe user (e.g., by activating an accept control in the message) prior tothe system enabling the user to communicate with the selected person.

A user's digital image can be screened for quality and accuracy. Thescreening process further enables the determination as to how old theimage representation is of the user (e.g., based on the timestamp orverification date data associated with the image), such as informationextracted from the image or metadata attached to the image. As similarlydescribed above, the “Selfie-booth” technology may use facialrecognition to match a verified real-time image to established referenceimage(s) of the user. The real-time image can be verified by using areference clock coupled with a required current reference image featurein the image. One example of the reference image would be a digitalimage of a government-issued identification like a driver's license or averified on-line image on established social media profile(s). Anotherexample might be a current newspaper in the image frame. The real-timeimage could include a real-time image capture function from a mobiledevice or web-camera. Optionally, the real-time device status may beutilized to verify the image recording time, but not the identity of theuser, which might be verified separately. Images of a user that are notverified or that are older than a threshold period of time may beexcluded from being used matching processes with other users

To enable faster system processing, the systems and processes describedherein may be configured to simultaneously search for more than onesubject in a single subject search query. The systems and processesdescribed herein may enable the simultaneous matching of more than oneuser based on different methods or criteria from a single search or tomatch to multiple reference images. This enables a user to match severaldifferent facial images in one search query, thereby providingsimultaneous results to the user in response to a single search query.Any of these criteria may be encrypted to prevent the user fromperforming any modifications on the system.

An example advantage over conventional image-matching technology (whichcan yield zero/no match results), the disclosed matching algorithm mayoptionally be configured to always yield matches based on providingvarying degrees of similarity and/or based on different features orimage criteria. In contrast to a conventional image-matching technologywhich can yield zero results, optimally the matching algorithm disclosedwill always yield some matches as long as there are images of one ormore other users in the user image database. These matches can beprovided in rank order and optionally in association with a match score(e.g., a percentage match, a letter grade match, a numerical match scorein a range of 1 to 5 or 1 to 10, etc.) reflecting the closeness ofmatch.

The degrees of the resemblance of individual matches from the system mayalso be provided for display to the user. The resemblance measurementmay be an aggregate metric and/or a group of individual metrics. Forexample, the user might be shown images based on a single or a group offacial criteria or features.

The system architecture may be utilized irrespective of the intendedapplication or market. For example, the reference imaging matchingportion of the system using facial image recognition technology may bematched to a reference image (including but not limited to a celebrity)as follows.

A single individual user image may, in a single search, be matched tomultiple reference images with the disclosed facial image recognitiontechnology and optionally using the disclosed artificial intelligenceengine. Providing the user's facial landscape, image, or imagecharacteristics with the degree of resemblance to the reference imagelandscape, images, or image characteristics. This includes providing theuser image with a degree of resemblance to multiple reference images,providing more than just reference image matching, and more than onepercentage of resemblance calculation based on a single matching query.This optionally includes simultaneously matching multiple user images tomultiple reference images within multiple degrees of resemblance byproviding these results from a single query. Optionally, this mayinclude matching one user with different reference images in thedatabase and/or matching in degrees of resemblance and/or also allowingrunning multiple searches on multiple subjects from the same query.

An example process may include uploading the image of one user person,adding multiple images of reference people to find the best matches,process the images, match the data to the data, stored in a database, ofother users, rank and display the results.

The disclosed systems and methods optionally enable multiple terms to besimultaneously searched and enable multiple matching processes (wheremultiple searches are performed to identify matches) to be performed inparallel (e.g., where the parallel searches may optionally be based onsearching for several matching criteria).

The disclosed systems and methods may be utilized for a variety ofapplications outside of the dating field. Thus, while certain of thedescribed examples relate to dating application systems andmethodologies, the disclosed techniques may be used for other purposesas well. These include security applications, social events, socialnetworking and other potential use cases.

The disclosed systems and methods may be utilized in applications inwhich, in response to a single matching query request, an image of afamiliar face or a celebrity facial image is matched using facialrecognition technology (e.g., feature recognition and characterization)to one person (the subject person) by matching to multiple familiar orcelebrity images using facial recognition and optionally usingartificial intelligence algorithm(s).

The disclosed facial recognition technology may be implemented viasoftware, such as a biometric software application, a hardware device,and/or using a combination of hardware and software.

The disclosed processes may be performed in whole or in part by a userdevice, a local system, and/or a cloud-based system. For example, someor all of a given disclosed process may be executed by a secure, cloudbased system comprised of co-located and/or geographically distributedserver systems (which may include cloud-based GPU systems). Informationmay be received by the cloud-based system from one or more terminals. Aterminal may include or be connected (via a wireless or wiredconnection) to one or more sensors, such as one or more microphones, oneor more cameras (e.g., front facing and/or rear facing cameras, and/orthe like.

A terminal may include a display, a wired network interface, a wirelesslocal network interface and/or wireless cellular interface.

The methods and processes described herein may have fewer or additionalsteps or states and the steps or states may be performed in a differentorder. Not all steps or states need to be reached. The methods andprocesses described herein may be embodied in, and fully or partiallyautomated via, software code modules executed by one or more generalpurpose computers. The code modules may be stored in any type ofcomputer-readable medium or other computer storage device. Some or allof the methods may alternatively be embodied in whole or in part inspecialized computer hardware. The systems described herein mayoptionally include displays, user input devices (e.g., touchscreen,keyboard, mouse, voice recognition, etc.), network interfaces, etc.

The results of the disclosed methods may be stored in any type ofcomputer data repository, such as relational databases and flat filesystems that use volatile and/or non-volatile memory (e.g., magneticdisk storage, optical storage, EEPROM and/or solid state RAM).

The various illustrative logical blocks, modules, routines, andalgorithm steps described in connection with the embodiments disclosedherein can be implemented as electronic hardware, computer software, orcombinations of both. To clearly illustrate this interchangeability ofhardware and software, various illustrative components, blocks, modules,and steps have been described above generally in terms of theirfunctionality. Whether such functionality is implemented as hardware orsoftware depends upon the particular application and design constraintsimposed on the overall system. The described functionality can beimplemented in varying ways for each particular application, but suchimplementation decisions should not be interpreted as causing adeparture from the scope of the disclosure.

Moreover, the various illustrative logical blocks and modules describedin connection with the embodiments disclosed herein can be implementedor performed by a machine, such as a general purpose processor device, adigital signal processor (DSP), an application specific integratedcircuit (ASIC), a field programmable gate array (FPGA) or otherprogrammable logic device, discrete gate or transistor logic, discretehardware components, or any combination thereof designed to perform thefunctions described herein. A general purpose processor device can be amicroprocessor, but in the alternative, the processor device can be acontroller, microcontroller, or state machine, combinations of the same,or the like. A processor device can include electrical circuitryconfigured to process computer-executable instructions. In anotherembodiment, a processor device includes an FPGA or other programmabledevice that performs logic operations without processingcomputer-executable instructions. A processor device can also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration. Although described herein primarily with respect todigital technology, a processor device may also include primarily analogcomponents. A computing environment can include any type of computersystem, including, but not limited to, a computer system based on amicroprocessor, a mainframe computer, a digital signal processor, aportable computing device, a device controller, or a computationalengine within an appliance, to name a few.

The elements of a method, process, routine, or algorithm described inconnection with the embodiments disclosed herein can be embodieddirectly in hardware, in a software module executed by a processordevice, or in a combination of the two. A software module can reside inRAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory,registers, hard disk, a removable disk, a CD-ROM, or any other form of anon-transitory computer-readable storage medium. An exemplary storagemedium can be coupled to the processor device such that the processordevice can read information from, and write information to, the storagemedium. In the alternative, the storage medium can be integral to theprocessor device. The processor device and the storage medium can residein an ASIC. The ASIC can reside in a user terminal. In the alternative,the processor device and the storage medium can reside as discretecomponents in a user terminal.

Conditional language used herein, such as, among others, “can,” “may,”“might,” “may,” “e.g.,” and the like, unless specifically statedotherwise, or otherwise understood within the context as used, isgenerally intended to convey that certain embodiments include, whileother embodiments do not include, certain features, elements and/orsteps. Thus, such conditional language is not generally intended toimply that features, elements and/or steps are in any way required forone or more embodiments or that one or more embodiments necessarilyinclude logic for deciding, with or without other input or prompting,whether these features, elements and/or steps are included or are to beperformed in any particular embodiment. The terms “comprising,”“including,” “having,” and the like are synonymous and are usedinclusively, in an open-ended fashion, and do not exclude additionalelements, features, acts, operations, and so forth. Also, the term “or”is used in its inclusive sense (and not in its exclusive sense) so thatwhen used, for example, to connect a list of elements, the term “or”means one, some, or all of the elements in the list.

Disjunctive language such as the phrase “at least one of X, Y, Z,”unless specifically stated otherwise, is otherwise understood with thecontext as used in general to present that an item, term, etc., may beeither X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z).Thus, such disjunctive language is not generally intended to, and shouldnot, imply that certain embodiments require at least one of X, at leastone of Y, or at least one of Z to each be present.

While the phrase “click” may be used with respect to a user selecting acontrol, menu selection, or the like, other user inputs may be used,such as voice commands, text entry, gestures, etc. User inputs may, byway of example, be provided via an interface, such as via text fields,wherein a user enters text, and/or via a menu selection (e.g., a dropdown menu, a list or other arrangement via which the user can check viaa check box or otherwise make a selection or selections, a group ofindividually selectable icons, etc.). When the user provides an input oractivates a control, a corresponding computing system may perform thecorresponding operation. Some or all of the data, inputs andinstructions provided by a user may optionally be stored in a systemdata store (e.g., a database), from which the system may access andretrieve such data, inputs, and instructions. The notifications/alertsand user interfaces described herein may be provided via a Web page, adedicated or non-dedicated phone application, computer application, ashort messaging service message (e.g., SMS, MMS, etc.), instantmessaging, email, push notification, audibly, a pop-up interface, and/orotherwise.

The user terminals described herein may be in the form of a mobilecommunication device (e.g., a cell phone), laptop, tablet computer,interactive television, game console, media streaming device,head-wearable display, networked watch, etc. The user terminals mayoptionally include displays, user input devices (e.g., touchscreen,keyboard, mouse, voice recognition, etc.), network interfaces, etc.

While the above detailed description has shown, described, and pointedout novel features as applied to various embodiments, it can beunderstood that various omissions, substitutions, and changes in theform and details of the devices or algorithms illustrated can be madewithout departing from the spirit of the disclosure. As can berecognized, certain embodiments described herein can be embodied withina form that does not provide all of the features and benefits set forthherein, as some features can be used or practiced separately fromothers. The scope of certain embodiments disclosed herein is indicatedby the appended claims rather than by the foregoing description. Allchanges which come within the meaning and range of equivalency of theclaims are to be embraced within their scope.

What is claimed is:
 1. A facial feature matching system, comprising: anetwork interface; at least one processing device operable to: populatea first user interface, for display on a user device associated with afirst user, with a set of images comprising respective reference facialimages of different people; receive, via the network interface, from theuser device a selection by the first user of a plurality of referencefacial images in the set of images; characterize a plurality of facialfeatures of respective reference faces using a facial featurerecognition engine, the respective faces comprising faces included inthe reference facial images selected by the first user; use thecharacterized plurality of facial features to identify a plurality ofusers that have one or more facial features similar to one or more ofthe characterized plurality of facial features, wherein the respectivereference faces include faces different than faces of the plurality ofusers; generate respective similarity indicators for the identifiedplurality of users that have one or more facial features similar to oneor more of the characterized plurality of facial features; use thegenerated respective similarity indicators for the identified pluralityof users that have one or more facial features similar to one or more ofthe characterized plurality of facial features to generate a ranking ofthe identified plurality of users; cause a second user interface to bedisplayed on the user device, the second user interface populated, basedat least in part on the generated ranking of the identified plurality ofusers, in association with respective similarity indicators, with theidentified plurality of users that have one or more facial featuressimilar to one or more of the characterized plurality of facialfeatures; receive, via the second user interface, a selection, by thefirst user, from the user device, of a second user in the plurality ofusers that have one or more facial features similar to one or more ofthe characterized plurality of facial features; and enable the firstuser and the second user to communicate over at least a first electroniccommunication channel.
 2. The facial feature matching system as definedin claim 1, the system further configured to perform operationcomprising: filtering reference images in a database of reference imagesto generate the set of images comprising respective reference facialimages based at least in part on non-appearance-related preferences. 3.The facial feature matching system as defined in claim 1, the systemfurther configured to perform operations comprising: using a neuralnetwork comprising: an input layer, one or more hidden layers, and anoutput layer, to identify the plurality of users that have one or morefacial features similar to the one or more of the characterizedplurality of facial features.
 4. The facial feature matching system asdefined in claim 1, the system further configured to perform operationscomprising: receiving an image from a given user; verifying timinginformation associated with the image of the given user; and at leastpartly in response to a successful verification of timing informationassociated with the image received from the given user, including theimage received from the given user in a first database comprising userimages.
 5. The facial feature matching system as defined in claim 1, thesystem further configured to perform operations comprising: drawingrespective light masks of vectors for respective facial features of agiven face in at least one image; and weighting the respective lightmasks to enhance accuracy in identifying facial feature similarity. 6.The facial feature matching system as defined in claim 1, the systemfurther configured to perform operations comprising: using a chain codein performing a process of matching a feature of a given reference facewith a feature of a given user.
 7. The facial feature matching system asdefined in claim 1, wherein a given similarity indicator comprises apercentage similarity indicator.
 8. A computerized method, the methodcomprising: populating, using a computer system comprising hardware, afirst user interface, for display on a user device associated with afirst user, with images comprising respective reference facial images ofdifferent people; receiving, at the computer system from the userdevice, a selection by the first user of a plurality of reference facialimages; characterizing a plurality of facial features of respectivereference faces using a facial feature recognition engine, therespective faces comprising faces included in the reference facialimages selected by the first user; using the characterized plurality offacial features to identify a plurality of users that have one or morefacial features similar to one or more of the characterized plurality offacial features, wherein the respective reference faces include facesdifferent than faces of the plurality of users; generating respectivesimilarity indicators for the identified plurality of users that haveone or more facial features similar to one or more of the characterizedplurality of facial features; using the generated respective similarityindicators for the identified plurality of users that have one or morefacial features similar to one or more of the characterized plurality offacial features to generate a ranking of the identified plurality ofusers; causing a second user interface to be displayed on the userdevice, the second user interface populated, based at least in part onthe generated ranking of the identified plurality of users, with atleast a portion of the identified plurality of users that have one ormore facial features similar to one or more of the characterizedplurality of facial features; receiving, via the second user interface,a selection, by the first user, from the user device, of a second userin the plurality of users that have one or more facial features similarto one or more of the characterized plurality of facial features; andenabling the first user and the second user to communicate over at leasta first electronic communication channel.
 9. The computerized method asdefined in claim 8, the method further comprising: filtering referenceimages in a database of reference images to generate the imagescomprising respective reference facial images based at least in part onnon-appearance-related preferences.
 10. The computerized method asdefined in claim 8, the method further comprising: using a neuralnetwork comprising: an input layer, one or more hidden layers, and anoutput layer, to identify the plurality of users that have one or morefacial features similar to the one or more of the characterizedplurality of facial features.
 11. The computerized method as defined inclaim 8, the method further comprising: receiving an image from a givenuser; verifying timing information associated with the image receivedfrom the given user; and at least partly in response to a successfulverification of timing information associated with the image receivedfrom the given user, including the image received from the given user ina first database comprising user images.
 12. The computerized method asdefined in claim 8, the method further comprising: drawing respectivelight masks of vectors for respective facial features of a given face inat least one image; and weighting the respective light masks to enhanceaccuracy in identifying facial feature similarity.
 13. The computerizedmethod as defined in claim 8, the method further comprising: using achain code in performing a process of matching a feature of a givenreference face with a feature of a given user.
 14. The computerizedmethod as defined in claim 8, wherein a given similarity indicatorcomprises a percentage similarity indicator.
 15. A non-transitorycomputer-readable medium comprising instructions that when executed by aprocessor, cause the processor to perform operations comprising:populating a first user interface, for display on a user deviceassociated with a first user, with images comprising respectivereference facial images of different people; receiving a selection bythe first user of one or more reference facial images; characterizing aplurality of facial features of respective reference faces in the one ormore reference facial images using a facial feature recognition engine,the one or more respective faces comprising faces included in thereference facial images selected by the first user; using thecharacterized plurality of facial features to identify users that haveone or more facial features similar to one or more of the characterizedplurality of facial features, wherein the respective reference facesinclude faces different than faces of the identified users; generatingrespective similarity indicators for the identified users that have oneor more facial features similar to the one or more of the characterizedplurality of facial features; using the generated respective similarityindicators for the identified users that have one or more facialfeatures similar to the one or more of the characterized plurality offacial features in generating an ordering of the identified users;causing a second user interface to be displayed on the user device, thesecond user interface populated, in accordance with the ordering, withthe identified users that have one or more facial features similar tothe one or more of the characterized plurality of facial features;receiving, via the second user interface, a selection, by the firstuser, from the user device, of a second user users that have one or morefacial features similar to the one or more of the characterizedplurality of facial features; and enabling the first user and the seconduser to communicate over at least a first electronic communicationchannel.
 16. The non-transitory computer-readable medium as defined inclaim 15, the operations further comprising: filtering reference imagesin a database of reference images to generate the images comprisingrespective reference facial images based at least in part onnon-appearance-related preferences.
 17. The non-transitorycomputer-readable medium as defined in claim 15, the operations furthercomprising: using a neural network comprising: an input layer, one ormore hidden layers, and an output layer, to identify the users that haveone or more facial features similar to the one or more of thecharacterized plurality of facial features.
 18. The non-transitorycomputer-readable medium as defined in claim 15, the operations furthercomprising: receiving an image from a given user; verifying timinginformation associated with the image from the given user; and at leastpartly in response to a successful verification of timing informationassociated with the image from the given user, including the image ofthe given user in a first database comprising user images.
 19. Thenon-transitory computer-readable medium as defined in claim 15, theoperations further comprising: drawing respective light masks of vectorsfor respective facial features of a given face in at least one image;and weighting the respective light masks to enhance accuracy inidentifying facial feature similarity.
 20. The non-transitorycomputer-readable medium as defined in claim 15, the operations furthercomprising: using a chain code in performing a process of matching afeature of a given reference face with a feature of a given user. 21.The non-transitory computer-readable medium as defined in claim 15,wherein a given similarity indicator comprises a percentage similarityindicator.